package faktorI;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class DijalogZakljucak extends JDialog{
	
	private JButton dugme1,dugme2,dugmeZaPomoc;
	private Zakljucak zakljucak;
	private JTextArea textPolje; 
	Iterator iterator; 
	
	public DijalogZakljucak() {
		super(FaktorIRadnaPovrs.instanca().dohvatiMenadzera(), "Definisanje zaključka", true);
		
		setLayout(new FlowLayout());
		setSize(780, 100);
		setResizable(false);
		setLocationRelativeTo(null);
		if(LstZaklj.instanca().prazna())LstPrav.instanca().popuniListuZakljucaka();
		LstZaklj.instanca().deselektujSelZaklj();
		FaktorIRadnaPovrs.instanca().dohvatiPrikaz(2).setText(null);
		iterator = new Iterator(LstZaklj.instanca());
		zakljucak = (Zakljucak)iterator.first();
		
		textPolje = new JTextArea(2,20);
		textPolje.setText("" + zakljucak.getNaziv());
		textPolje.setFont(Font.decode("Arial-15"));
		textPolje.setBackground(Color.getColor(null));
		JScrollPane scrollPane = new JScrollPane(textPolje); 
		textPolje.setEditable(false);
		add(scrollPane);
		
		add(dugme1 = new JButton("Izaberi zaključak",new ImageIcon(Toolkit.getDefaultToolkit().getImage(
			"files/icons/selZ.JPG"))));
		dugme1.setFont(Font.decode("Serif-ITALIC-15"));
		add(dugme2 = new JButton("Sledeci zaključak",new ImageIcon(Toolkit.getDefaultToolkit().getImage(
			"files/icons/nextZ.JPG"))));
		dugme2.setFont(Font.decode("Serif-ITALIC-15"));
		add(dugmeZaPomoc = new JButton(new ImageIcon(Toolkit.getDefaultToolkit().getImage(
			"files/icons/help.JPG"))));
		addListeners();
	
	}
	private void addListeners(){
		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent we) {
				if (!LstZaklj.instanca().postojiSelektovan())
					prikaziObavestenje();
				if (FaktorIRadnaPovrs.instanca().startnoStanjeKompletno()){
					FaktorIRadnaPovrs.instanca().dohvatiMenadzera().dozvoliNaPocetak();
					FaktorIRadnaPovrs.instanca().dohvatiTaster(3).setEnabled(true);
					FaktorIRadnaPovrs.instanca().dohvatiPrikaz(3).requestFocus();
				}
				else{
					FaktorIRadnaPovrs.instanca().dohvatiMenadzera().zabraniNaPocetak();
					FaktorIRadnaPovrs.instanca().dohvatiTaster(3).setEnabled(false);
				}
			}

			public void windowClosed(WindowEvent we) {
				if (FaktorIRadnaPovrs.instanca().startnoStanjeKompletno()){
					FaktorIRadnaPovrs.instanca().dohvatiMenadzera().dozvoliNaPocetak();
					FaktorIRadnaPovrs.instanca().dohvatiTaster(3).setEnabled(true);
					FaktorIRadnaPovrs.instanca().dohvatiPrikaz(3).requestFocus();
				}
			}
		});
		
		dugme1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				zakljucak.setSelektovan(true);
				FaktorIRadnaPovrs.instanca().dohvatiPrikaz(2).setText("ZAKLJUČAK:\n\n  " + zakljucak.getNaziv() );
				dispose();
			}
		});
		
		dugme2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				zakljucak = (Zakljucak)iterator.next();
				if(zakljucak != null){
					textPolje.setText(zakljucak.getNaziv());
				}
				else{
					JOptionPane.showMessageDialog(FaktorIRadnaPovrs.instanca().dohvatiMenadzera(),
							"Morate izabrati jedan od zaključaka!",
							"Obaveštenje", JOptionPane.INFORMATION_MESSAGE);
					zakljucak = (Zakljucak)iterator.first();
					textPolje.setText(zakljucak.getNaziv());
				}
			}
		});	
		dugmeZaPomoc.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				PomocOSimulatoru.instanca().prikazi(6);
				}
			});
	}
	
	private void prikaziObavestenje() {
		JOptionPane.showMessageDialog(this,
				"Morate definisati pravila, opažanja i zaključak\n"
						+ " da bi se simulacija mogla pokrenuti!",
				"Obaveštenje", JOptionPane.INFORMATION_MESSAGE);
	}

}
